From b67d9ea72347d9643b46d4003391774eb4b1187f Mon Sep 17 00:00:00 2001 From: "leendert@watson.ibm.com[kaf24]" Date: Sat, 2 Apr 2005 07:32:19 +0000 Subject: [PATCH] bitkeeper revision 1.1236.1.197 (424e4a83Uiv2R3w5XZIvsLYfRc7fhQ) [PATCH] [PATCH] tools/libxc/xc_vmx_build.c broken xc_vmx_build pins the level 2 page table too early so that subsequent maps (like those in zap_mmio_ranges) fail and consequently xc_vmx_build fails. To solve this, this patch pins the l2pt at the end of the function when all memory initializations are finalized. Signed-off-by: Leendert van Doorn --- BitKeeper/etc/logging_ok | 1 + tools/libxc/xc_vmx_build.c | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index fb88f12f88..329e97523d 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -52,6 +52,7 @@ kaf24@striker.cl.cam.ac.uk kaf24@viper.(none) kmacy@shemp.lab.netapp.com laudney@eclipse.(none) +leendert@watson.ibm.com lynx@idefix.cl.cam.ac.uk maf46@burn.cl.cam.ac.uk mafetter@fleming.research diff --git a/tools/libxc/xc_vmx_build.c b/tools/libxc/xc_vmx_build.c index d1692e61f8..ed9868e9f0 100644 --- a/tools/libxc/xc_vmx_build.c +++ b/tools/libxc/xc_vmx_build.c @@ -329,13 +329,6 @@ static int setup_guest(int xc_handle, munmap(vl1tab, PAGE_SIZE); munmap(vl2tab, PAGE_SIZE); - /* - * Pin down l2tab addr as page dir page - causes hypervisor to provide - * correct protection for the page - */ - if ( pin_table(xc_handle, MMUEXT_PIN_L2_TABLE, l2tab>>PAGE_SHIFT, dom) ) - goto error_out; - if ((boot_paramsp = xc_map_foreign_range( xc_handle, dom, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[(vboot_params_start-dsi.v_start)>>PAGE_SHIFT])) == 0) @@ -428,6 +421,13 @@ static int setup_guest(int xc_handle, shared_info->vcpu_data[i].evtchn_upcall_mask = 1; munmap(shared_info, PAGE_SIZE); + /* + * Pin down l2tab addr as page dir page - causes hypervisor to provide + * correct protection for the page + */ + if ( pin_table(xc_handle, MMUEXT_PIN_L2_TABLE, l2tab>>PAGE_SHIFT, dom) ) + goto error_out; + /* Send the page update requests down to the hypervisor. */ if ( finish_mmu_updates(xc_handle, mmu) ) goto error_out; -- 2.30.2